﻿using ALMDDD.Application.ViewModels.SysUser;
using ALMDDD.Domain.Model;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;

namespace ALMDDD.Application.Interfaces
{
    /// <summary>
    /// 用户接口
    /// </summary>
    public interface ISysUserService : IDisposable
    {
        /// <summary>
        /// 添加用户
        /// </summary>
        /// <param name="sysUserViewModel"></param>
        void Add(SysUserViewModel sysUserViewModel);
        /// <summary>
        /// 获取所有信息
        /// </summary>
        /// <returns></returns>
        IEnumerable<SysUserViewModel> GetAll();
        /// <summary>
        /// 根据用户id获取实体
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        SysUserViewModel GetById(Guid id);
        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="sysUserViewModel"></param>
        void Update(SysUserViewModel sysUserViewModel);
        /// <summary>
        /// 根据id删除数据
        /// </summary>
        /// <param name="id"></param>
        void Remove(Guid id);
        SysUserViewModel GetMany(Expression<Func<Sys_User, bool>> where);
        SysUserListsVO GetUserRoles(Guid id);
    }
}
